Python Python命令执行脚本批量巡检多台linux服务器

环境

window10
python = 3.7
被巡检服务器linux

代码

python部分

需要安装paramiko模块

1
pip install paramiko

python 部分代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#-*- coding:utf8 -*-
import paramiko
import subprocess
import datetime

# 定义服务器列表和巡检脚本路径
servers = [
{'hostname': 'server1', 'ip': '192.168.231.128', 'username': 'root', 'password': 'root'},
{'hostname': 'server1', 'ip': '192.168.231.129', 'username': 'root', 'password': 'root'},
# 添加更多服务器
]
script_path = 'F:\\vsCodeWorkspace\\Monitoring.sh' # 替换为您的巡检脚本路径

# 遍历服务器列表进行巡检
for server in servers:
try:
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server['ip'], username=server['username'], password=server['password'])

# 上传巡检脚本至远程服务器
sftp = ssh.open_sftp()
sftp.put(script_path, 'script.sh')
sftp.close()

# 执行巡检脚本
stdin, stdout, stderr = ssh.exec_command('chmod +x script.sh && ./script.sh')
output = stdout.read().decode()

# 打印巡检结果
print(f"Server: {server['hostname']}")
print(f"Output: {output}")
print("----------------------------------------")
#写入日志out.log
current_time = datetime.datetime.now()
logout = current_time.strftime("%Y-%m-%d.txt")
with open(logout,"a",encoding="utf-8") as file:
file.write(f"Server: {server['hostname']}\r\n")
file.write(f"Output: {output}")
# 关闭SSH连接
ssh.close()
#屏幕打印,如果不需要则注释并注释上面try
except paramiko.AuthenticationException as e:
print(f"Failed to connect to {server['hostname']}: {str(e)}")
except paramiko.SSHException as e:
print(f"Error occurred while connecting to {server['hostname']}: {str(e)}")

shell部分

文件名为:Monitoring.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228

#!/bin/bash

function RED(){
#在页面上打印成红色
# echo -e "\033[31m$@\033[0m"
#在日志输出不乱码
echo -e "$@"
}

function GRE(){
#在页面上打印成绿色
# echo -e "\033[36m$@\033[0m"
#在日志输出
echo -e "$@"
}

function OS_INFO(){
# 系统名
local OS_NAME=`uname -n`
# 系统版本
local OS_VERSION=`cat /etc/.kyinfo | grep dist_id | grep -oE "Kylin.*" 2>/dev/null || echo 获取信息失败`
# 系统类型
local OS_TYPE=`uname`
# 主机序列号
local OS_NUM=`dmidecode -t system | grep 'Serial Number' | awk '{print $3}'`
# 系统内核版本
local OS_KERNEL=`uname -r`
# 系统机器码
local OS_CODE=""
# 系统语言环境
local OS_LANG=`echo $LANG`
# 系统时间
local OS_DATE=`date +"%Y-%m-%d %H:%M:%S"`
# 系统运行时间
local OS_UPTIME=`uptime | awk -F',' '{sub(/.*up /,"",$1);print $1'} || echo 获取信息失败`
# 系统上次重启时间
local OS_LAST_REBOOT=`last reboot | head -1 | awk '{print $5,$6,$7,$8,$10}'`
# 系统上次关机时间
local OS_LAST_SHUTDOWN=`last -x | grep shutdown | head -1 | awk '{print $5,$6,$7,$8,$10}'`

RED "################################# [ 系统信息巡检区 ] ######################################"
GRE "主机名:$OS_NAME"
GRE "主机类型:$OS_TYPE"
GRE "主机序列号:${OS_NUM:-获取信息失败}"
GRE "系统版本:$OS_VERSION"
GRE "系统内核版本:$OS_KERNEL"
GRE "系统机器码:${OS_CODE:-获取信息失败}"
GRE "系统语言环境:${OS_LANG}"
GRE "系统时间;$OS_DATE"
GRE "系统已运行时间:$OS_UPTIME"
GRE "系统上次重启时间:${OS_LAST_REBOOT:-获取信息失败}"
GRE "系统上次关机时间:${OS_LAST_SHUTDOWN:-获取信息失败}"
}

function OS_HDWARE(){
# CPU架构
local CPU_ARCH=`uname -m`
# CPU型号
local CPU_TYPE=`cat /proc/cpuinfo | grep "model name" | uniq | awk -F':' '{sub(/ /,"",$2);print $2}'`
# CPU个数
local CPU_NUM=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
# CPU 核数
local CPU_CORE=`cat /proc/cpuinfo | grep cores | uniq | awk -F':' '{sub(/ /,"",$2);print $2}'`
# CPU 频率
local CPU_HZ=`cat /proc/cpuinfo | grep "cpu MHz" | uniq | awk -F':' '{sub(/ /,"",$2);printf "%s MHz\n",$2}'`

# 内存容量
local ME_SIZE=$(echo "scale=2;`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`/1048576"|bc)
# 空闲内存
local ME_FREE=$(echo "scale=2;`cat /proc/meminfo | grep 'MemFree:' | awk '{print $2}'`/1048576"|bc)
# 可用内存
local ME_FREEE=$(echo "scale=2;`cat /proc/meminfo | grep 'MemAvailable:' | awk '{print $2}'`/1048576" | bc)
# 内存使用率
local ME_USE=$(awk 'BEGIN{printf "%.1f%\n",('$ME_SIZE'-'$ME_FREEE')/'$ME_SIZE'*100}')
# SWAP大小
local ME_SWAP_SIZE=$(echo "scale=2;`cat /proc/meminfo | grep 'SwapTotal:' | awk '{print $2}'`/1048576"|bc)
# SWAP可用
local ME_SWAP_FREE=$(echo "scale=2;`cat /proc/meminfo | grep 'SwapFree:' | awk '{print $2}'`/1048576"|bc)
# SWAP使用率
local ME_SWAP_USE=$(awk 'BEGIN{printf "%.1f%\n",('$ME_SWAP_SIZE'-'$ME_SWAP_FREE')/'$ME_SWAP_SIZE'*100}')
# Buffer大小
local ME_BUF=$(cat /proc/meminfo | grep 'Buffers:' | awk '{printf "%s KB",$2}')
# 内存Cache大小
local ME_CACHE=$(cat /proc/meminfo | grep '^Cached:' | awk '{printf "%s KB",$2}')

# 当前系统所有网卡
local NET_DEVICE=(`cat /proc/net/dev | awk 'NR>2 && $1 !~/lo/ {sub(/:/,"");print $1}'`)

RED "################################# [ 系统硬件巡检区 ] ######################################"
GRE "CPU型号:$CPU_TYPE"
GRE "CPU架构:$CPU_ARCH"
GRE "CPU个数:$CPU_NUM"
GRE "CPU核数: $CPU_CORE"
GRE "CPU频率:$CPU_HZ"
GRE "内存容量:${ME_SIZE} GB"
GRE "内存空闲:${ME_FREE} GB"
GRE "内存可用:${ME_FREEE} GB"
GRE "内存使用率:${ME_USE}"
GRE "SWAP容量:$ME_SWAP_SIZE GB"
GRE "SWAP可用容量:$ME_SWAP_FREE GB"
GRE "SWAP使用率:$ME_SWAP_USE"
GRE "内存Buffer大小:${ME_BUF}"
GRE "内存Cache大小:${ME_CACHE}"

for i in ${NET_DEVICE[@]}
do
GRE "网卡:$i 状态: $(ip link show ens33 | awk 'NR==1{print $9}') RX: $(ethtool -g ens33 | grep "RX:" | tail -1 | awk '{print $2}') TX: $(ethtool -g ens33 | grep "TX:" | tail -1 | awk '{print $2}')"
done
}

function OS_NETWORK(){
# 系统IP
local IP=$(hostname -I)
# 网关地址
local GATEWAY=$(ip route | grep default &>/dev/null && ip route | grep default | awk '{print $3}' || echo '未设置默认网关')
# DNS地址
local DNS=(`cat /etc/resolv.conf | grep nameserver | uniq | awk '{print $2}'`)

RED "################################# [ 系统网络巡检区 ] ######################################"
GRE "IP地址:$IP"
GRE "网关地址:$GATEWAY"
GRE "DNS地址:${DNS[@]}"
GRE "网关[$GATEWAY]连接情况: $(ping -t 1 -i 1 -c 5 -W 1 192.168.0.2 &>/dev/null && echo '正常通信' || echo '无法通信')"
}

function OS_RESOURCE(){
# 系统磁盘列表
local DISK_LIST=(`lsblk | egrep "^[a-z].*" | grep -v "^sr" | awk '{print $1}'`)
# 系统磁盘使用率情况
local DISK_PER=(`df -h | awk 'NR>1 && $1 !~/sr/ {gsub(/%/,"",$5);print $5}'`)

# CPU空闲率
local CPU_FREE=$(top -d 1 -n 1 -b | awk 'NR==3{print $8}')
# CPU使用率
local CPU_USE=$(awk 'BEGIN{printf "%.1f%\n",100-'$CPU_FREE'}')
# CPU_TOP_TEN
local CPU_TOP_TEN=$(top -d 1 -n 1 -b | column -t | awk 'NR>=7 && NR<=15')

# 当前进程数
local CPU_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print $2}')
# 当前正在运行进程数
local CPU_RUN_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print $4}')
# 当前正在休眠进程数
local CPU_SL_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print $6}')
# 当前停止运行进程数
local CPU_STOP_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print 8}')
# 当前僵尸进程数
local CPU_ZOM_PROCESSORS=$(top -d 1 -n 1 -b | awk 'NR==2{print $10}')


RED "################################# [ 系统资源巡检区 ] ######################################"
GRE "CPU使用率:$CPU_USE"
GRE "CPU使用率前十进程信息:"
GRE "$(ps -eo user,pid,pcpu,pmem,args --sort=-pcpu | head -n 10)"
GRE "\n内存使用率前十进程信息:"
GRE "$(ps -eo user,pid,pcpu,pmem,args --sort=-pmem | head -n 10)"
GRE "\n磁盘IO信息:$(iotop -bon 1 &>/dev/null || echo 'io top 未安装信息获取失败')"
GRE "$(iotop -bon 1 &>/dev/null && iotop -bon 1 | head -n 13)"
GRE "\n磁盘分区使用率是否正常:正常"
for i in ${DISK_LIST[@]}
do
if [[ -z "$(lsblk --nodeps -no serial /dev/$i)" ]]; then
GRE "磁盘:$i 磁盘序列号:获取信息失败"
else
GRE "磁盘:$i 磁盘序列号:$(lsblk --nodeps -no serial /dev/$i)"
fi
done
for i in ${DISK_PER[@]}
do
if [ $i -gt 80 ]; then
RED "某分区磁盘使用率为:$i% > 80% 请及时扩容"
fi
done
GRE "\n系统磁盘分区inode使用情况:"
GRE "$(df -Thi)"
GRE "\n系统当前进程数:$CPU_PROCESSORS"
GRE "系统当前进程运行数:$CPU_RUN_PROCESSORS"
GRE "系统当前休眠进程数:$CPU_SL_PROCESSORS"
GRE "系统当前停止进程数:$CPU_STOP_PROCESSORS"
GRE "系统当前僵尸进程数:$CPU_ZOM_PROCESSORS"

GRE "\n系统当前允许最大fd数量:$(cat /proc/sys/fs/file-nr | awk '{print $3}')"
GRE "系统当前已打开fd数量:$(cat /proc/sys/fs/file-nr | awk '{print $1}')"
GRE "系统单个进程运行打开fd数量:$(ulimit -n)"

GRE "\n系统当前socket连接数:$(netstat -anp &>/dev/null && netstat -anp | wc -l || echo 'net-tools 未安装,获取信息失败')"
GRE "系统 established socket数量: $(netstat -anp &>/dev/null && netstat -anp | grep "ESTABLISHED" | wc -l || echo 'net-tools 未安装,获取信息失败')"
GRE "系统 sync socket数量:$(netstat -anp &>/dev/null && netstat -anp | grep "SYN" | wc -l || echo 'net-tools 未安装,获取信息失败')"
GRE "系统当前已建立socket如下:"
GRE "$(netstat -anp &>/dev/null && netstat -anp | grep ESTABLISHED | awk '{printf " 本地:%-20s <=> 外部:%-22s\n",$4,$5}' || echo '')"
}

function OS_SECURITY(){
# 系统所有能登录的用户
local OS_USER=(`cat /etc/passwd | awk -F':' '$NF !~/nologin|sync|shutdown|halt/ {print $1}'`)
# Selinux
local OS_SELINUX=`getenforce`
# 防火墙状态
local OS_FIREWALLD=`service firewalld status &>/dev/null | grep "running" && echo on || echo off`

RED "################################# [ 系统安全巡检区 ] ######################################"
GRE "防火墙状态: $OS_FIREWALLD"
GRE "Selinux状态:${OS_SELINUX}\n"
GRE "系统可登录用户数:$(cat /etc/passwd | awk -F':' '$NF !~/nologin|sync|shutdown|halt/ {print $1}' | wc -l)"
GRE "系统可登录用户:${OS_USER[@]}"
for i in ${OS_USER[@]}
do
GRE "用户 $i 最后1次登录信息: $(lastlog -u $i | awk 'NR==2')"
done
GRE "系统当前登录用户:"
GRE "$(who | sed 's#[()]##g' | awk '{printf " 用户: %10s 终端: %7s 登录时间: %7s %7s 登录IP: %7s\n",$1,$2,$3,$4,$5}')"
}

function OS_SERVICE(){
RED "################################# [ 系统服务巡检区 ] ######################################"
GRE "自行添加"
}

if [ $(id -u -n) != "root" ]; then
ERROR "请以ROOT用户运行这个脚本"
fi

OS_INFO
OS_HDWARE
OS_NETWORK
OS_RESOURCE
OS_SECURITY

结果

日志文件名是今天的日期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Server: server1

Output: ################################# [ 系统信息巡检区 ] ######################################
主机名:bogon
主机类型:Linux
主机序列号:VMware-56
系统版本:获取信息失败
系统内核版本:3.10.0-1160.el7.x86_64
系统机器码:获取信息失败
系统语言环境:zh_CN.UTF-8
系统时间;2023-09-09 12:16:36
系统已运行时间:10 min
系统上次重启时间:Sat Sep 9 12:06 12:16
系统上次关机时间:Sat Sep 9 11:32 12:06
################################# [ 系统硬件巡检区 ] ######################################
CPU型号:Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
CPU架构:x86_64
CPU个数:2
CPU核数: 1
CPU频率:2208.002 MHz
内存容量:3.68 GB
内存空闲:1.29 GB
内存可用:2.14 GB
内存使用率:41.8%
SWAP容量:0 GB
SWAP可用容量:0 GB
SWAP使用率:
内存Buffer大小:2104 KB
内存Cache大小:1095648 KB
网卡:vethd0d16e2 状态: UP RX: 256 TX: 256
网卡:br-5cc909daa712 状态: UP RX: 256 TX: 256
网卡:br-8aeaa845ffa4 状态: UP RX: 256 TX: 256
网卡:veth30f95e0 状态: UP RX: 256 TX: 256
网卡:br-1e607a72367a 状态: UP RX: 256 TX: 256
网卡:veth03a160e 状态: UP RX: 256 TX: 256
网卡:vetha221a4d 状态: UP RX: 256 TX: 256
网卡:br-4f71f13677f9 状态: UP RX: 256 TX: 256
网卡:br-ee83d5997b33 状态: UP RX: 256 TX: 256
网卡:br-212b68474a5c 状态: UP RX: 256 TX: 256
网卡:br-ff93a3026998 状态: UP RX: 256 TX: 256
网卡:br-7c424b96b4d9 状态: UP RX: 256 TX: 256
网卡:vethe83937d 状态: UP RX: 256 TX: 256
网卡:veth9f69747 状态: UP RX: 256 TX: 256
网卡:br-182bab31fcd7 状态: UP RX: 256 TX: 256
网卡:br-860a421033a0 状态: UP RX: 256 TX: 256
网卡:ens33 状态: UP RX: 256 TX: 256
网卡:br-9df6b9fac4d3 状态: UP RX: 256 TX: 256
网卡:br-0cfcee11ccdc 状态: UP RX: 256 TX: 256
网卡:docker0 状态: UP RX: 256 TX: 256
################################# [ 系统网络巡检区 ] ######################################
IP地址:192.168.231.128 172.18.0.1 172.22.0.1 172.24.0.1 172.100.0.1 172.20.0.1 172.25.0.1 172.28.0.1 172.26.0.1 172.19.0.1 172.27.0.1 172.17.0.1 172.21.0.1 172.23.0.1
网关地址:192.168.231.2
DNS地址:192.168.231.2
网关[192.168.231.2]连接情况: 无法通信
################################# [ 系统资源巡检区 ] ######################################
CPU使用率:3.1%
CPU使用率前十进程信息:
USER PID %CPU %MEM COMMAND
root 2376 1.5 10.4 java -Dfile.encoding=UTF-8 -Dspring.config.location=/opt/kkFileView-4.1.0/config/application.properties -jar /opt/kkFileView-4.1.0/bin/kkFileView-4.1.0.jar
root 2724 0.9 2.5 node server/server.js
root 3289 0.2 0.0 /bin/bash ./script.sh
root 1 0.1 0.1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 499 0.1 0.0 /usr/lib/systemd/systemd-udevd
root 663 0.1 0.7 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root 1151 0.1 1.9 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
polkitd 2429 0.1 5.1 mysqld --default-authentication-plugin=mysql_native_password
root 2430 0.1 1.1 node /api/server.js

内存使用率前十进程信息:
USER PID %CPU %MEM COMMAND
root 2376 1.5 10.4 java -Dfile.encoding=UTF-8 -Dspring.config.location=/opt/kkFileView-4.1.0/config/application.properties -jar /opt/kkFileView-4.1.0/bin/kkFileView-4.1.0.jar
polkitd 2429 0.1 5.1 mysqld --default-authentication-plugin=mysql_native_password
root 2724 0.9 2.5 node server/server.js
root 1151 0.1 1.9 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 2926 0.0 1.6 /opt/libreoffice7.3/program/soffice.bin -accept=socket,host=127.0.0.1,port=2002;urp; -env:UserInstallation=file:///tmp/.jodconverter_socket_host-127.0.0.1_port-2002 -headless -nocrashreport -nodefault -nofirststartwizard -nolockcheck -nologo -norestore
root 2904 0.1 1.6 /opt/libreoffice7.3/program/soffice.bin -accept=socket,host=127.0.0.1,port=2001;urp; -env:UserInstallation=file:///tmp/.jodconverter_socket_host-127.0.0.1_port-2001 -headless -nocrashreport -nodefault -nofirststartwizard -nolockcheck -nologo -norestore
root 991 0.0 1.2 /usr/bin/containerd
root 2430 0.1 1.1 node /api/server.js
root 663 0.1 0.7 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

磁盘IO信息:io top 未安装信息获取失败


磁盘分区使用率是否正常:正常
磁盘:sda 磁盘序列号:获取信息失败
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容
某分区磁盘使用率为:94% > 80% 请及时扩容

系统磁盘分区inode使用情况:
文件系统 类型 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs devtmpfs 469K 357 469K 1% /dev
tmpfs tmpfs 472K 1 472K 1% /dev/shm
tmpfs tmpfs 472K 1.4K 470K 1% /run
tmpfs tmpfs 472K 16 472K 1% /sys/fs/cgroup
/dev/mapper/centos-root xfs 15M 817K 14M 6% /
/dev/sda1 xfs 250K 327 250K 1% /boot
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/ef19444fd2104a4f1d5f829a5e7c7df72d558f4b2f1499997e825976b039a9ec/merged
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/3a7eed53b775dfb6f598c77721740b26468c7d9fba2cf7c9b43d9176072f9a33/merged
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/aeabf7b39b3fa396c42de284bc62724268177e8707ff6a47fe91633c59297a9c/merged
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/559fe3b485066c832fa5cc58c0dc4167a7a88830527e2ad895ae494c6c157cd3/merged
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/bf213298f6faf1b82e9247c54f02f115ad4a455bdda9154bc40754b0b8ced519/merged
overlay overlay 15M 817K 14M 6% /var/lib/docker/overlay2/30bb98c473e3b93236517fa881cd4c4fd544555650fd62ff742569d6e63c702d/merged
shm tmpfs 472K 2 472K 1% /var/lib/docker/containers/f356da86faeedc68546ab6824d86f3a87e4cb66291b79d2c908829cc6afbc41c/mounts/shm
shm tmpfs 472K 1 472K 1% /var/lib/docker/containers/9113b7a0ddd1df1d83570905b5a11d9487f1266c6626ef19a892afa9c8bf7c69/mounts/shm
shm tmpfs 472K 1 472K 1% /var/lib/docker/containers/a96eb6a82671b508a1eadd117a4979d83f5ef990253064853c8502d878e20933/mounts/shm
shm tmpfs 472K 1 472K 1% /var/lib/docker/containers/97480b988d5327cc118ad5c790aa3e646b6eaace009f474cc990b2b1b66765bf/mounts/shm
shm tmpfs 472K 1 472K 1% /var/lib/docker/containers/e8458fef9ae54f211a4c985baf5a7f9872de6de278bcc33be9d7a2a9a5824322/mounts/shm
shm tmpfs 472K 1 472K 1% /var/lib/docker/containers/122a088deb7bb35ec48694a3e81bbfdfc07173626bb5b87b90181aa98ef2c8a7/mounts/shm
tmpfs tmpfs 472K 1 472K 1% /run/user/0

系统当前进程数:156
系统当前进程运行数:1
系统当前休眠进程数:152
系统当前停止进程数:8
系统当前僵尸进程数:3

系统当前允许最大fd数量:365456
系统当前已打开fd数量:2272
系统单个进程运行打开fd数量:1024

系统当前socket连接数:211
系统 established socket数量: 2
系统 sync socket数量:0
系统当前已建立socket如下:
本地:192.168.231.128:22 <=> 外部:192.168.231.1:59866
本地:192.168.231.128:22 <=> 外部:192.168.231.1:59873
################################# [ 系统安全巡检区 ] ######################################
防火墙状态: off
Selinux状态:Disabled

系统可登录用户数:1
系统可登录用户:root
用户 root 最后1次登录信息: root pts/0 192.168.231.1 六 9月 9 12:16:20 +0800 2023
系统当前登录用户:
用户: root 终端: tty1 登录时间: 2023-09-09 12:08 登录IP:
用户: root 终端: pts/0 登录时间: 2023-09-09 12:16 登录IP: 192.168.231.1

报错及解决办法

报错

1
module 'paramiko' has no attribute 'SSHClient'

原因:没有下载paramiko包

解决办法;

1
pip install paramiko -i https://mirrors.aliyun.com/pypi/simple/

报错

1
module 'paramiko' has no attribute 'AuthenticationException'

原因:python 的执行文件paramiko.py和paramiko的包同名了

解决办法;修改名字paramiko.py为paramiko_test.py重新执行

报错

1
由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

原因:检查服务器是否开启,可被链接, ip 和端口号,以及用户名密码

解决办法;:修改正确即可

一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

继开 wechat
欢迎加我的微信,共同交流技术